
لقد شدني هذا الموضوع من
الاستفسار او السؤال الذي طرحته الاخت/ المبدعه الصغيره ومن رأي انه موضوع مهم . و حتى لا يتم التداخل بين أنواع او طرق
الترتيب " تـــصاعدياً او تنازليا " .
هناك ثلاثة أنواع من طرق
الترتيب وهذا على حد علمي .
الترتيب
بطريقة الفقاقيع Bubble Sort
الترتيب
بطريقة الاختيار Selection Sort
الترتيب
بطريقة الادخال Insertion Sort
فأود ان اوضح الفرق لكم حتى
لا يتم التداخل بينهم التداخل لو تسمحو لي
.
اولاُ : الترتيب
بطريقة الفقاقيع Bubble Sort
في هذه الطريقة تتم مقارنة كل
قيمتين متتاليتين من بداية القائمة "المصفوفة" او "Array"
وتبديلهم اذا لم يكونو في التبديل المطلوب " تصاعديا مثلا " وذلك حتى
نهاية القائمة .
باستكمال هذه المرحلة تكون
اكبر قيمة استقرة قد استقرت في نهاية القائمة .
ويتم استبعاد القيمة الاخيرة
لانها استقرت في مكانها الصحيح .
يتم تكــــرار هذه المرحلة
" 1 الى الـ N " حيث
ان الـ N هي عدد
القيم في القائمة حتى يتم الترتيب تصاعديا مثلا .
ثانيا : الترتيب
بطريقة الاختيار Selection Sort
في هذه الطريقه يتم البحث عن
القيمة الصغرى بين قيم القائمة ويتم استبدالها مع القيمة الاولى في القائمة .
ويتم استبعاد القيمة الاولى
لانها استقرت في مكانه الصحيح ويكرر ذلك الى القيمه الثانية الى الاخيرة الخ حتى
يصل الى نهاية القائمة .
ثالثا : الترتيب
بطريقة الادخال Insertion Sort
هذه الطريق تقوم فكرتها على
اساس عدد القيم في المصفوفة او القائمة فإذا كانت عدد القيم اكبر من واحد وهذا شرت
اساسي الي عملية مقارنة يتم عملية المقارنه بداية من الرقم الثاني بالسابق له ويتم
استبدالهم اذا لم يكن في الترتيب الصحيح وتكرر هذه العملية بعدد قيم المصفوفة حتى الوصول الى الترتيب
الصحيح .
---------------------------------------------------------------------------------------------------------
الاكواد
:
اولاُ
: الترتيب بطريقة الفقاقيع Bubble Sort
Private
Sub Command1_Click ()
Dim
N, I, J, Temp As Integer
Dim
X (1 To 8) As Integer
Dim
NOSWAP As Boolean
N = InputBox ("أدخل عدد الأرقام")
For
J = 1 To N
X (J) = InputBox ("ادخل الأرقام")
Next
J
For
I = 1 To N
- 1
NOSWAP = True
For
J = 1 To N
- I
If X(J)
> X(J + 1) Then
Temp = X(J)
X(J) = X(J + 1)
X(J + 1) = Temp
NOSWAP = False
End
If
Next
J
If NOSWAP = True Then
MsgBox ("تم انهاء الترتيب")
Exit
For
End
If
Next
I
For
J = 1 To N
Print, X(J);
Next
J
End
Sub
ثانيا : الترتيب
بطريقة الاختيار Selection Sort
Private
Sub Command1_Click ()
Cls
Dim x(1 To 20) As Single
Dim n, J, k, temp, I As Single
n = InputBox("إدخل عدد
الارقام")
For J = 1 To n
x(J) = InputBox("إدخل القيمة")
Next J
For J = 1 To n - 1
k = J
temp = x(J)
For I = J + 1 To n
If x(I) < temp Then
k = (I)
End
If
Next I
temp = x(J)
x(J) = x(k)
x(k) = temp
Next J
For I = 1 To n
Print , x(I);
Next I
End
Sub
ثالثا : الترتيب
بطريقة الادخال Insertion Sort
Private
Sub Command1_Click ()
Cls
Dim
j, k, n, i As Integer
Dim
a(1 To 8) As Integer
n = InputBox("إدخل عدد
الارقام ")
For
k = 1 To n
a(k) = InputBox("إدخل القيمة ")
Next
k
If n >= 2 Then
For
i = 2 To n
Flag = 1
j = i
Do
While (j >= 2) And (flage = 1)
If a(j) < a(j - 1) Then
temp = a(j)
a(j) = a(j - 1)
a(j - 1) = temp
j = j - 1
Else
Flag = 0
End
If
Next
i
For
k = 1 To n
Print
a(k), k, m, x, t
Next
k
End
If
End
Sub
ويارب يـــكون الشرح وافي
ومفهوم واي استفسار انا تحت امركم .
اخوكم احمد عزت "A7med_prof"
